package com.isesol.ime.dal.mapper;

import com.isesol.arch.common.dal.*;
import com.isesol.ime.dal.model.*;
import com.isesol.ime.dal.model.dto.*;
import org.apache.ibatis.annotations.*;
import org.springframework.stereotype.*;

import java.util.*;

/**
 * 报文
 *
 * @author peter zhang
 */
@Repository
public interface MessageMapper extends GenericMapper<MessageDO> {

	List<MessageDO> findAll();

	List<MessageDO> findIn(@Param("list") List list);

	List<MessageDTO> find(@Param("msgId") String msgId,
	                       @Param("msgName") String msgName,
	                       @Param("ruleName") String ruleName,
	                       @Param("machineType") String machineType,
	                       @Param("status") String status);

	List<MessageDO> findByMsgIdAndStatus(@Param("msgId") String msgId,
	                                     @Param("status") String status);


	MessageDTO findById(@Param("id") String id);

	List<MessageDTO> SelectableMessages(@Param("machineId") String machineId,
	                                    @Param("machineType") String machineType,
	                                    @Param("ruleName") String ruleName,
	                                    @Param("status") String status);

	List<ParamDTO> findSelectableParams(@Param("msgId") String msgId,
	                                    @Param("paramVersion") String paramVersion,
	                                    @Param("status") String status,
	                                    @Param("categoryId") String categoryId,
	                                    @Param("paramId") String paramId);

	List<MessageDO> findDefault(@Param("machineType") String machineType);
}
